home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / dev / e / yaec.lha / examples / bla.device.e < prev    next >
Text File  |  2001-08-12  |  2KB  |  79 lines

  1. LIBRARY DEVICE 'bla.device', 37, 1, 'bla.device by nisse 2001'
  2.  
  3. MODULE 'exec/devices'
  4. MODULE 'exec/io'
  5.  
  6. -> YAEC1.9a : now opens exec,dos,intui,gfx automatically.
  7.  
  8. /* NOTE1 : LIBRARY mode is not for beginners ! */
  9.  
  10. /* NOTE2 : DEVICE mode is for experts ! */
  11.  
  12. /* NOTE4 : do NOT pass out exceptions from devicecode */
  13.  
  14. /* NOTE5 : filename of device will be src-filename without .e */
  15.  
  16. /* NOTE6 : this is just a very thin skeleton-device */
  17.  
  18. /* NOTE7 : it does not do anything as is, you have to code the rest */
  19.  
  20. /* NOTE8 : DEVICE mode is not tested yet ! (dont be shy..) */
  21.  
  22. /* NOTE9 : UNDER CONSTRUCTION.. (I have never written a device..) */
  23.  
  24. /* NOTEA : Ptr to the device is in the global "libbase" */
  25.  
  26. /* NOTEB : the library/device-base is READ-ONLY. */
  27.  
  28. /* the two required entries of a device, starting at -30 */
  29.  
  30. ENTRY BeginIO(iostd)(a1) IS beginIO(A1) -> dont change
  31.  
  32. ENTRY AbortIO(iostd)(a1) IS abortIO(A1) -> dont change
  33.  
  34.  
  35. /* the four required standard functions */
  36. /* see amiga dev cd x.x (RKM) for info about theese functions */
  37. /* for example, do NOT call functions that could break Forbid() ! */
  38. /* picky stuff like opencount, removing us etc.. is taken care of */
  39.  
  40.  
  41. /* system loading us up from disk */
  42. /* we got exec and dos ready */
  43. PROC Init() -> gets called when loaded from disk !
  44.    -> do stuff
  45. ENDPROC TRUE  -> return TRUE for success.
  46.  
  47. /* user calling OpenDevice() on us */
  48. PROC Open(iob:PTR TO iostd,
  49.           unitnum:LONG,
  50.           flags:LONG) 
  51.    -> do stuff
  52. ENDPROC TRUE  -> return TRUE for success.
  53.  
  54. /* User calling CloseDevice() on us */
  55. PROC Close(iob:PTR TO iostd) 
  56.    -> do stuff
  57. ENDPROC
  58.  
  59. /* if we have no openers, the system might give us a chance to exit. */
  60. /* do we want to exit ? */
  61. /* if so, cleanup resources and return <> NIL */
  62. /* if not, just return NIL */
  63. PROC Expunge() 
  64.    -> do stuff
  65. ENDPROC TRUE  -> You should normally return TRUE here.
  66.               -> Returning <> NIL allows removing of lib
  67.               -> (returning NIL will abort expunge!)
  68.  
  69. /* empty device functions */
  70.  
  71. PROC beginIO(iob:PTR TO iostd)
  72.   ->do stuff here
  73. ENDPROC
  74.  
  75. PROC abortIO(iob:PTR TO iostd)
  76.    -> do stuff here
  77. ENDPROC
  78.  
  79.